package com.atguigu.gmall.product.controller;

import com.atguigu.gmall.common.result.Result;

import org.apache.commons.io.FilenameUtils;
import org.csource.fastdfs.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;


@RestController
@RequestMapping("admin/product/")
public class FileUploadController {

    //    找到fasdfs地址
    @Value("${fileServer.url}")
    private String FsDfsUrl;

//    @Autowired
//    private FastFileStorageClient storageClient;
//
//    @Autowired
//    private FdfsWebServer webServer;// 获取存储服务器的请求URL

    /**
     * 文件上传
     *
     * @param file
     * @return
     */
    @PostMapping("fileUpload")
    public Result<String> uploadFile(MultipartFile file) throws Exception {

        /**
         * //        获取文件名称
         *         String originalFilename = file.getOriginalFilename();
         * //        截取图片后缀名
         *         String tag = originalFilename.substring(originalFilename.lastIndexOf("."));
         * //        文件上传
         *         StorePath path = storageClient.uploadFile(file.getInputStream(), file.getSize(), tag, null);
         *
         * //        获取路径名称
         *         String url = path.getFullPath();
         *
         * //        返回图片路径
         *         return Result.ok(webServer+url);
         */


        //        方法一
        String imageUrl = "";

        //              加载配置文件
        String date = getClass().getResource("/tracker.conf").getFile();

        if (date != null) {


            //        初始化连接配置文件
            ClientGlobal.init(date);

            //            创建客户端
            TrackerClient trackerClient = new TrackerClient();
            //            创建连接中心
            TrackerServer trackerServer = trackerClient.getConnection();
            //            创建存上传客户端
            StorageClient1 storageClient1 = new StorageClient1(trackerServer, null);

            //            获取后缀名
            String extension = FilenameUtils.getExtension(file.getOriginalFilename());//            上传文件
            imageUrl = storageClient1.upload_appender_file1(file.getBytes(), extension, null);

            System.out.println("图片地址"+FsDfsUrl +imageUrl );
        }
        return Result.ok(FsDfsUrl + imageUrl);
    }

}
